// 只用来处理路由的模块
// 根据请求
// 
/*
学生首页
添加页面
处理请求
渲染编辑页面
处理编辑学生的请求
处理删除请求

 */

// 导入express框架  构造一个容器
var express = require('express')
// 此方法相当于 一个构造函数
var router = express.Router()
var fs = require('fs')
var path = require('path')
// 密码加密
var md5 = require('md5')
var mongoose = require('mongoose')
// 加载处理数据业务模块
var operate = require('../operate_data.js')
var Login = require('../create_mog.js')



// 用post请求时借助Body-parser包
var bodyParser = require('body-parser')
// 添加中间件
router.use(bodyParser.urlencoded({
    extended: false
}))
router.post('/login', function(req, res) {
    // 找数据库的数据
    Login.findOne({
        email: req.body.email,
        password: md5(req.body.password)
    }, function(err, ret) {
        if (err) {
            return next(err)
        }
        if (!ret) {
            return res.send('用户名或密码错误')
        }
        // 保存到session中
        req.session.views = ret
        res.redirect('/star')
    })

})

// 使用router容器
router.get('/', function(req, res) {
    res.render('reg.art')
})
router.get('/star', function(req, res) {

    // 用mongo查找
    operate.find(function(err, ret) {
        if (err) {
            return next(err)
        }
        var isFlag = req.session.views ? true : false
        // console.log(req.session.views.email)
        // 把数据发送过去
        res.render('index.art', {
            "food": ['校园风采', '学生风采', '食堂一角', '学校活动'],
            "stars": ret,
            isFlag: isFlag
        })
    })
})


// 请求添加页面
router.get('/star/add', function(req, res) {
    res.render('add.art')
})
// 发送添加页面
router.post('/star/add', function(req, res) {
    // 调用处理数据文件中的函数

    // 新建一个数据
    var obj = new operate(req.body)
    // 保存
    obj.save(function(err, ret) {
        if (err) {
            return next(err)
        }
        // console.log(ret)
        res.redirect('/star')
    })
})

// 请求编辑页面
router.get('/star/edit', function(req, res) {
    // 查找id 
    operate.findById(req.query.id, function(err, ret) {
        if (err) {
            return next(err)
        }
        res.render('edit.art', {
            stars: ret
        })
    })
})
// 发送编辑页面
router.post('/star/edit', function(req, res) {
    // mongoose查询id并修改
    operate.findByIdAndUpdate(req.body.id, req.body, function(err, ret) {
        if (err) {
            // 返回定义的全局中间件
            return next(err)
        }
        res.redirect('/star')
    })

})
// 删除
router.get('/star/delete', function(req, res) {
    // console.log(req.query.id)
    // 此处也可以用findByIdAndRemove
    operate.remove({
        "_id": req.query.id
    }, function(err, ret) {
        if (err) {
            return next(err)
        }
        res.redirect('/star')

    })
})

// 注册页面
router.get('/reg', function(req, res) {
    res.render('reg.art')
})
router.post('/reg', function(req, res) {
    // 判断确认密码
    if (req.body.password != req.body.confirmPassword) {
        return res.send('确认密码不一致')
    }

    console.log(md5(req.body.password))
    // 对密码进行加密
    req.body.password = md5(req.body.password)
    var login = new Login(req.body)
    login.save(function(err, ret) {
        if (err) {
            throw err
        }
        res.redirect('/login')
    })
})
// 登录界面
router.get('/login', function(req, res) {
    res.render('login.art')
})

// 导出router
module.exports = router;